home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Software Contest 3
/
FM Towns Software Contest 3.iso
/
exp
/
video_t
/
no1
/
c_sorse
/
box2.c
< prev
next >
Wrap
Text File
|
1994-01-07
|
9KB
|
370 lines
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <winb.h>
#include <egb.h>
#include <te.h>
#include <fntb.h>
#include <gui.h>
int Dialog_box = -1 ;
int Message_box = -1 ;
int TIcon_box[4] = -1 ;
int Message_vox1 = -1 ;
int _001Message_vox1 = -1 ;
int _002Message_vox1 = -1 ;
int _003Message_vox1 = -1 ;
int TIcon_boxpaint = -1 ;
int _004Message_vox1 = -1 ;
int _005Message_vox1 = -1 ;
int NumBox_boxpen = -1 ;
int _006Message_vox1 = -1 ;
int NumBox_boxx1 = -1 ;
int _007Message_vox1 = -1 ;
int NumBox_boxy1 = -1 ;
int _008Message_vox1 = -1 ;
int NumBox_boxx2 = -1 ;
int _009Message_vox1 = -1 ;
int NumBox_boxy2 = -1 ;
int DButton_box = -1 ;
int _001DButton_box = -1 ;
int _002DButton_box = -1 ;
int _010Message_vox1 = -1 ;
int _011Message_vox1 = -1 ;
int _012Message_vox1 = -1 ;
int _003DButton_box = -1 ;
int _013Message_vox1 = -1 ;
extern int backid ;
extern int Dia_edit ;
extern int Dialog_menu ;
extern int Text ;
extern char *guiEgbPtr ;
extern char para10[300];
extern char *pwork;
extern wait();
int radiobox = 0 ;
/* initDataBOX:TIcon_box[0]:MJ_TICONL40の呼び出し関数 */
/* initDataBOX:TIcon_box[1]:MJ_TICONL40の呼び出し関数 */
/* initDataBOX:TIcon_box[2]:MJ_TICONL40の呼び出し関数 */
/* initDataBOX:TIcon_box[3]:MJ_TICONL40の呼び出し関数 */
int box_func(kobj, messId, argc, pev, trigger)
int kobj ;
int messId ;
int argc ;
EVENT *pev ;
int trigger ;
{
/* 現在選択状態にあるボタンを非選択状態にし、選択可にします */
MTL_resetFlagObj(radiobox,~(MS_UNSELECT | MS_TOGGLE)) ;
MMI_SendMessage(radiobox, MM_SHOW, 0) ;
/* 画面選択フラグを更新します */
radiobox = kobj ;
/* 呼び出し元トグルボタンを選択状態にし、選択不可にします */
MTL_setFlagObj(kobj, MS_UNSELECT | MS_TOGGLE) ;
MMI_SendMessage(kobj, MM_SHOW, 0) ;
return NOERR ;
}
/* initDataBOX:DButton_box:MJ_DBUTTONL40の呼び出し関数 */
int box_on(kobj, messId, argc, pev, trigger)
int kobj ;
int messId ;
int argc ;
EVENT *pev ;
int trigger ;
{
int delay1,delay2,delay0,delay3,pens ;
int min, max, delta, ptColum ;
int ret;
char moji[300];
char suu[10];
MMI_SendMessage(NumBox_boxpen, MM_GETNUMBOX, 5,
&pens, &min, &max, &delta, &ptColum) ;
moji[0]='\0';
strcat(moji,"/PEN ");
_itoa(pens,suu,10);
strcat(moji,suu);
MMI_SendMessage(Text,MM_SETTEXT,3,moji,200,TRUE) ;
MMI_SendMessage(Text,MM_SETTEXT,3,"\n",5,TRUE) ;
ret=MTL_checkFlagObj(TIcon_boxpaint,MS_TOGGLE);
MMI_SendMessage(NumBox_boxx1, MM_GETNUMBOX, 5,
&delay0, &min, &max, &delta, &ptColum) ;
MMI_SendMessage(NumBox_boxy1, MM_GETNUMBOX, 5,
&delay1, &min, &max, &delta, &ptColum) ;
MMI_SendMessage(NumBox_boxx2, MM_GETNUMBOX, 5,
&delay2, &min, &max, &delta, &ptColum) ;
MMI_SendMessage(NumBox_boxy2, MM_GETNUMBOX, 5,
&delay3, &min, &max, &delta, &ptColum) ;
moji[0]='\0';
if(ret==0x10) strcat(moji,"/BOX 1 ");
else strcat(moji,"/BOX 0 ");
_itoa(delay0,suu,10);
strcat(moji,suu);
strcat(moji," ");
_itoa(delay1,suu,10);
strcat(moji,suu);
strcat(moji," ");
_itoa(delay2,suu,10);
strcat(moji,suu);
strcat(moji," ");
_itoa(delay3,suu,10);
strcat(moji,suu);
MMI_SendMessage(Text,MM_SETTEXT,3,moji,200,TRUE) ;
MMI_SendMessage(Text,MM_SETTEXT,3,"\n",5,TRUE) ;
moji[0]='\0';
strcat(moji,"/PEN 1");
MMI_SendMessage(Text,MM_SETTEXT,3,moji,200,TRUE) ;
MMI_SendMessage(Text,MM_SETTEXT,3,"\n",5,TRUE) ;
MMI_SendMessage(Dialog_box,MM_ERASE,0) ;
MMI_SendMessage(Dialog_box,MM_DETACH,0) ;
MMI_SendMessage(Text, MM_ERASE, 0) ;
MMI_SendMessage(Text, MM_WAKE, 0) ;
MMI_SendMessage(Text, MM_SHOW, 0) ;
/* メニューを選択可とします。 */
MTL_resetAtrObj(Dialog_menu, ~MS_DSPONLYL40) ;
MTL_resetAtrObj(Dia_edit, ~MS_DSPONLYL40) ;
MTL_resetAtrObj(backid, ~MS_DSPONLYL40) ;
return NOERR ;
}
/* initDataBOX:_001DButton_box:MJ_DBUTTONL40の呼び出し関数 */
int box_off(kobj, messId, argc, pev, trigger)
int kobj ;
int messId ;
int argc ;
EVENT *pev ;
int trigger ;
{
MMI_SendMessage(Dialog_box,MM_ERASE,0) ;
MMI_SendMessage(Dialog_box,MM_DETACH,0) ;
/* メニューを選択可とします。 */
MTL_resetAtrObj(Dialog_menu, ~MS_DSPONLYL40) ;
MTL_resetAtrObj(Dia_edit, ~MS_DSPONLYL40) ;
MTL_resetAtrObj(backid, ~MS_DSPONLYL40) ;
return NOERR ;
}
/* initDataBOX:_002DButton_box:MJ_DBUTTONL40の呼び出し関数 */
int box_kaku(kobj, messId, argc, pev, trigger)
int kobj ;
int messId ;
int argc ;
EVENT *pev ;
int trigger ;
{
int i;
MG_pushEgbWork(guiEgbPtr,&pwork);
for (i = 0 ; i < 3 ; i++)
{
if (TIcon_box[i] == radiobox) break ;
}
/* メニューを選択不可とします。 */
MTL_setAtrObj(Dialog_box, MS_DSPONLYL40) ;
switch (i)
{
case 0: gamen1();
EGB_color(guiEgbPtr,0,32000);
EGB_color(guiEgbPtr,1,0);
EGB_color(guiEgbPtr,2,1000);
break;
case 1: gamen6();
EGB_color(guiEgbPtr,0,32000);
EGB_color(guiEgbPtr,1,0);
EGB_color(guiEgbPtr,2,1000);
break;
case 2: gamen0();
EGB_color(guiEgbPtr,0,255);
EGB_color(guiEgbPtr,1,0);
EGB_color(guiEgbPtr,2,20);
break;
case 3: gamen2();
EGB_color(guiEgbPtr,0,15);
EGB_color(guiEgbPtr,1,0);
EGB_color(guiEgbPtr,2,12);
break;
}
int delay1,delay2,delay0,delay3,pens ;
int min, max, delta, ptColum ;
int ret;
ret=MTL_checkFlagObj(TIcon_boxpaint,MS_TOGGLE);
MMI_SendMessage(NumBox_boxpen, MM_GETNUMBOX, 5,
&pens, &min, &max, &delta, &ptColum) ;
MMI_SendMessage(NumBox_boxx1, MM_GETNUMBOX, 5,
&delay0, &min, &max, &delta, &ptColum) ;
MMI_SendMessage(NumBox_boxy1, MM_GETNUMBOX, 5,
&delay1, &min, &max, &delta, &ptColum) ;
MMI_SendMessage(NumBox_boxx2, MM_GETNUMBOX, 5,
&delay2, &min, &max, &delta, &ptColum) ;
MMI_SendMessage(NumBox_boxy2, MM_GETNUMBOX, 5,
&delay3, &min, &max, &delta, &ptColum) ;
EGB_penSize(guiEgbPtr,pens);
if(ret==0x10) EGB_paintMode(guiEgbPtr,0x22);
else EGB_paintMode(guiEgbPtr,0x2);
WORD(para10 + 0)=delay0;
WORD(para10 + 2)=delay1;
WORD(para10 + 4)=delay2;
WORD(para10 + 6)=delay3;
EGB_rectangle(guiEgbPtr,para10);
EGB_penSize(guiEgbPtr,1);
int ss,xx,yy;
do {
MOS_rdpos(&ss,&xx,&yy);
}while(ss==0);
gamen2();
MG_popEgbWork(guiEgbPtr,pwork);
WINCLIP *pwclp ;
FRAME fr ;
fr.lupx = 0 ;
fr.lupy = 0 ;
fr.rdwx = 639 ;
fr.rdwy = 479 ;
pwclp = WIN_getClipMemory(&fr, NULL) ;
MMI_SendMessage(MMI_GetBaseObj(), MM_UPDATE, 1, pwclp) ;
WIN_freeClipMemory(pwclp) ;
wait();
/* メニューを選択可とします。 */
MTL_resetAtrObj(Dialog_box, ~MS_DSPONLYL40) ;
return NOERR ;
}
int l_box()
{
/* 背景を選択不可とします。*/
MTL_setAtrObj(backid, MS_DSPONLYL40) ;
MTL_setAtrObj(Dialog_menu, MS_DSPONLYL40) ;
MTL_setAtrObj(Dia_edit, MS_DSPONLYL40) ;
MMI_SendMessage(Dialog_box,MM_ATTACH,1,MMI_GetBaseObj()) ;
MMI_SendMessage(Dialog_box, MM_SHOW, 0) ;
return NOERR ;
}
/* initDataBOX:_003DButton_box:MJ_DBUTTONL40の呼び出し関数 */
int box_set(kobj, messId, argc, pev, trigger)
int kobj ;
int messId ;
int argc ;
EVENT *pev ;
int trigger ;
{
int i;
MG_pushEgbWork(guiEgbPtr,&pwork);
for (i = 0 ; i < 3 ; i++)
{
if (TIcon_box[i] == radiobox) break ;
}
switch (i)
{
case 0: gamen1();
EGB_color(guiEgbPtr,0,32000);
EGB_color(guiEgbPtr,1,0);
EGB_color(guiEgbPtr,2,1000);
break;
case 1: gamen6();
EGB_color(guiEgbPtr,0,32000);
EGB_color(guiEgbPtr,1,0);
EGB_color(guiEgbPtr,2,1000);
break;
case 2: gamen0();
EGB_color(guiEgbPtr,0,255);
EGB_color(guiEgbPtr,1,0);
EGB_color(guiEgbPtr,2,20);
break;
case 3: gamen2();
EGB_color(guiEgbPtr,0,15);
EGB_color(guiEgbPtr,1,0);
EGB_color(guiEgbPtr,2,12);
break;
}
int delay1,delay2,delay0,delay3,pens ;
int min, max, delta, ptColum ;
int ss,xx,yy;
int ss1,xx1,yy1;
int ss2,xx2,yy2;
int ret;
char para[100];
MG_mosDisp(1);
ret=MTL_checkFlagObj(TIcon_boxpaint,MS_TOGGLE);
MMI_SendMessage(NumBox_boxpen, MM_GETNUMBOX, 5,
&pens, &min, &max, &delta, &ptColum) ;
EGB_penSize(guiEgbPtr,pens);
if(ret==0x10) EGB_paintMode(guiEgbPtr,0x22);
else EGB_paintMode(guiEgbPtr,0x2);
do {
MOS_rdpos(&ss,&xx,&yy);
}while(ss==0);
WORD(para + 0)=1;
WORD(para + 2)=xx;
WORD(para + 4)=yy;
MG_mosDisp(0);
EGB_pset(guiEgbPtr,para);
MG_mosDisp(1);
wait();
WORD(para10 + 0)=xx;
WORD(para10 + 2)=yy;
do {
MOS_rdpos(&ss2,&xx2,&yy2);
}while(ss2==0);
WORD(para10 + 4)=xx2;
WORD(para10 + 6)=yy2;
MG_mosDisp(0);
EGB_rectangle(guiEgbPtr,para10);
EGB_penSize(guiEgbPtr,1);
MG_mosDisp(1);
wait();
do {
MOS_rdpos(&ss1,&xx1,&yy1);
}while(ss1==0);
gamen2();
MG_popEgbWork(guiEgbPtr,pwork);
WINCLIP *pwclp ;
FRAME fr ;
fr.lupx = 0 ;
fr.lupy = 0 ;
fr.rdwx = 639 ;
fr.rdwy = 479 ;
pwclp = WIN_getClipMemory(&fr, NULL) ;
MMI_SendMessage(MMI_GetBaseObj(), MM_UPDATE, 1, pwclp) ;
WIN_freeClipMemory(pwclp) ;
MMI_SendMessage(NumBox_boxx1, MM_SETNUMBOX, 5,xx, 0, 640, 1, 0) ;
MMI_SendMessage(NumBox_boxy1, MM_SETNUMBOX, 5,yy, 0, 480, 1, 0) ;
MMI_SendMessage(NumBox_boxx2, MM_SETNUMBOX, 5,xx2, 0, 640, 1, 0) ;
MMI_SendMessage(NumBox_boxy2, MM_SETNUMBOX, 5,yy2, 0, 480, 1, 0) ;
MMI_SendMessage(NumBox_boxx1, MM_SHOW, 0) ;
MMI_SendMessage(NumBox_boxy1, MM_SHOW, 0) ;
MMI_SendMessage(NumBox_boxx2, MM_SHOW, 0) ;
MMI_SendMessage(NumBox_boxy2, MM_SHOW, 0) ;
return NOERR ;
}